#include <vector>

using std::vector;

class Solution {
public:
    void rotate(vector<int>& nums, int k) {
        k = k % nums.size();
        if (k > 0) {
            int i = 0, j = nums.size() - 1;
            int tmp = 0;
            while (i < j) {
                tmp = nums[i];
                nums[i] = nums[j];
                nums[j] = tmp;
                i++;
                j--;
            }
            i = 0;
            j = k - 1;
            while (i < j) {
                tmp = nums[i];
                nums[i] = nums[j];
                nums[j] = tmp;
                i++;
                j--;
            }
            i = k;
            j = nums.size() - 1;
            while (i < j) {
                tmp = nums[i];
                nums[i] = nums[j];
                nums[j] = tmp;
                i++;
                j--;
            }
        }
    }
};